package com.ruoyi.system.BusinessContract.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * BussinessContract对象 business_contract
 * 
 * @author ruoyi
 * @date 2025-04-24
 */
public class BusinessContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 合同唯一ID */
    private String contractId;

    /** 港口名称或编号 */
    @Excel(name = "港口名称或编号")
    private String port;

    /** 货主名称或ID */
    @Excel(name = "货主名称或ID")
    private String owner;

    /** 合同类型 */
    @Excel(name = "合同类型")
    private String contractType;

    /** 合同签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signDate;

    /** 合同生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectDate;

    /** 合同终止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同终止日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationDate;

    /** 合同状态 */
    @Excel(name = "合同状态")
    private String status;

    /** 合同内容摘要 */
    @Excel(name = "合同内容摘要")
    private String contentSummary;

    /** 合同全文存储链接 */
    @Excel(name = "合同全文存储链接")
    private String contentUrl;

    /** 合同内容哈希值 */
    @Excel(name = "合同内容哈希值")
    private String contentHash;

    /** 到验号 */
    @Excel(name = "到验号")
    private String uniqueCode;

    /** 船名 */
    @Excel(name = "船名")
    private String shipName;

    /** 作废日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "作废日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date abolishDate;

    /** 公司ID */
    @Excel(name = "公司ID")
    private String companyId;

    /** 货物类型 */
    @Excel(name = "货物类型")
    private String cargoType;

    /** 合同总量 */
    @Excel(name = "合同总量")
    private Long volume;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 单价 */
    @Excel(name = "单价")
    private Long price;

    /** 币种 */
    @Excel(name = "币种")
    private String currency;

    /** 备注说明 */
    @Excel(name = "备注说明")
    private String remarks;

    public void setContractId(String contractId) 
    {
        this.contractId = contractId;
    }

    public String getContractId() 
    {
        return contractId;
    }

    public void setPort(String port) 
    {
        this.port = port;
    }

    public String getPort() 
    {
        return port;
    }

    public void setOwner(String owner) 
    {
        this.owner = owner;
    }

    public String getOwner() 
    {
        return owner;
    }

    public void setContractType(String contractType) 
    {
        this.contractType = contractType;
    }

    public String getContractType() 
    {
        return contractType;
    }

    public void setSignDate(Date signDate) 
    {
        this.signDate = signDate;
    }

    public Date getSignDate() 
    {
        return signDate;
    }

    public void setEffectDate(Date effectDate) 
    {
        this.effectDate = effectDate;
    }

    public Date getEffectDate() 
    {
        return effectDate;
    }

    public void setExpirationDate(Date expirationDate) 
    {
        this.expirationDate = expirationDate;
    }

    public Date getExpirationDate() 
    {
        return expirationDate;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setContentSummary(String contentSummary) 
    {
        this.contentSummary = contentSummary;
    }

    public String getContentSummary() 
    {
        return contentSummary;
    }

    public void setContentUrl(String contentUrl) 
    {
        this.contentUrl = contentUrl;
    }

    public String getContentUrl() 
    {
        return contentUrl;
    }

    public void setContentHash(String contentHash) 
    {
        this.contentHash = contentHash;
    }

    public String getContentHash() 
    {
        return contentHash;
    }

    public void setUniqueCode(String uniqueCode) 
    {
        this.uniqueCode = uniqueCode;
    }

    public String getUniqueCode() 
    {
        return uniqueCode;
    }

    public void setShipName(String shipName) 
    {
        this.shipName = shipName;
    }

    public String getShipName() 
    {
        return shipName;
    }

    public void setAbolishDate(Date abolishDate) 
    {
        this.abolishDate = abolishDate;
    }

    public Date getAbolishDate() 
    {
        return abolishDate;
    }

    public void setCompanyId(String companyId) 
    {
        this.companyId = companyId;
    }

    public String getCompanyId() 
    {
        return companyId;
    }

    public void setCargoType(String cargoType) 
    {
        this.cargoType = cargoType;
    }

    public String getCargoType() 
    {
        return cargoType;
    }

    public void setVolume(Long volume) 
    {
        this.volume = volume;
    }

    public Long getVolume() 
    {
        return volume;
    }

    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }

    public void setPrice(Long price) 
    {
        this.price = price;
    }

    public Long getPrice() 
    {
        return price;
    }

    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("contractId", getContractId())
            .append("port", getPort())
            .append("owner", getOwner())
            .append("contractType", getContractType())
            .append("signDate", getSignDate())
            .append("effectDate", getEffectDate())
            .append("expirationDate", getExpirationDate())
            .append("status", getStatus())
            .append("contentSummary", getContentSummary())
            .append("contentUrl", getContentUrl())
            .append("contentHash", getContentHash())
            .append("uniqueCode", getUniqueCode())
            .append("shipName", getShipName())
            .append("abolishDate", getAbolishDate())
            .append("companyId", getCompanyId())
            .append("cargoType", getCargoType())
            .append("volume", getVolume())
            .append("unit", getUnit())
            .append("price", getPrice())
            .append("currency", getCurrency())
            .append("remarks", getRemarks())
            .toString();
    }
}
